###Function###
RunAsWait

###Description###
Startet ein externes Programm im Kontext eines anderen Benutzers und pausiert das Skript, bis das Programm beendet wurde.

###Syntax###
RunAsWait ( "username", "domain", "password", logon_flag, "program" [, "workingdir" [, show_flag [, opt_flag]]] )


###Parameters###
@@ParamTable@@
username
	Benutzername, mit dem eingeloggt wird.
domain
	Domne, gegenber der man sich authentifiziert.
password
	Passwort des Benutzers.
logon_flag
	0 - Interaktives Logon ohne Profil.
	1 - Interaktives Logon mit Profil.
	2 - Nur Netzwerk-Authentifizierung.
	4 - bernehme die Umgebung des aufrufenden Prozesses statt der Umgebung des Benutzers.
program
	Name der ausfhrbaren Datei (EXE, BAT, COM oder PIF), die gestartet werden soll.
workingdir
	[optional] Arbeitsverzeichnis.  Wenn nicht angegeben, wird @SystemDir verwendet. Dies ist nicht der Pfad des Programms.
show_flag
	[optional] Legt die Sichtbarkeit des ausgefhrten Programms fest:
		@SW_HIDE = Verstecktes Fenster (benutzt alternativ das Schlsselwort Default).
		@SW_MINIMIZE = Minimiertes Fenster.
		@SW_MAXIMIZE = Maximiertes Fenster.
opt_flag
	[optional] Steuert die Interaktion zwischen Parent- und Child-Prozess.
		0x10000 ($RUN_CREATE_NEW_CONSOLE) = Der Child-Kommandozeilenprozess wird in einem eigenen Kommandozeilenfenster ausgefhrt. Dieses Flag ist nur dann sinnvoll, wenn die Parent-Anwendung als Kommandozeilenapplikation kompiliert wurde.
@@End@@

###ReturnValue###
@@ReturnTable@@
Erfolg:	Der Exit-Code des beendeten Programms.
Fehler:	0 und setzt @error ungleich Null.
@@End@@


###Remarks###
Pfade mit Leerzeichen mssen in Anfhrungszeichen gesetzt werden.

Es ist wichtig, ein Arbeitsverzeichnis anzugeben, fr den der Benutzer Zugriffsrechte hat, in dessen Kontext der Prozess ausgefhrt wird, anderenfalls schlgt der Aufruf der Funktion <a href="RunAs.htm">RunAs()</a> fehl.

Es ist empfehlenswert, nur dann das "fremde" Benutzerprofil zu verwenden, wenn es auch wirklich bentigt wird. Es besteht eine geringe Wahrscheinlichkeit, dass das Profil unter bestimmten Bedingungen im Speicher hngen bleibt. Wenn ein Skript <a href="RunAs.htm">RunAs()</a> benutzt, um einen Prozess unter dem SYSTEM-Account zu starten (z.B. um als Dienst zu fungieren), und ein Benutzerprofil ist aktiv, muss dafr gesorgt werden, dass das Skript nicht beendet wird, bevor der Child-Prozess geschlossen wurde.

Wenn man als Administrator angemeldet ist, muss der Service 'Sekundre Anmeldung' (<a href="RunAs.htm">RunAs()</a>) aktiv sein, sonst schlgt die Funktion fehl. Dies gilt nicht, wenn das SYSTEM-Konto aktiv ist.

Nach dem Start des angeforderten Programms pausiert das Skript, bis das gestartete Programm beendet wurde. Soll die Ausfhrung des Skripts fortgesetzt werden, so ist statt der RunAsWait-Funktion die <a href="RunAs.htm">RunAs()</a> Funktion zu verwenden.

Manche Programme scheinen beendet zu sein, obwohl sie noch ausgefhrt werden. Diese Programme erzeugen neue Prozesse - in diesen Fllen kann die Funktion <a href="ProcessWaitClose.htm">ProcessWaitClose()</a> verwendet werden, um auf das Ende dieser Prozesse zu warten.

Die 'logon_flags' mit Profil (0 oder 1) und Netzwerk-Authentifizierung (2) sind inkompatibel. Wenn beide in Kombination benutzt werden, kann das zu unvorhersehbaren Ergebnissen fhren!

Aufgrund eines Problems, das Windows XP mit der Fenstererzeugung hat, kann die STDIO-Umleitung und Steuerung der Sichtbarkeit blockiert werden (siehe den Microsoft Knowledge Base Artikel KB818858 fr weitere Informationen darber, welche Versionen betroffen sind und wie das Problem umgangen werden kann).  Benutzer von Windows XP SP2 (oder spter) oder Windows Vista (oder spter) sind nicht betroffen.


###Related###
ProcessWait, ProcessWaitClose, Run, RunWait, ShellExecute, ShellExecuteWait, RunAs


###Example###
@@IncludeExample@@
